import {
  listEnumsByType
} from '@/api/cabin';
/**
 * [getListEnumsJson 获取枚举接口]
 * @param  {[type]}   arrStr       [枚举类型数据]
 * @param  {Function} Callback     [加载完回调]
 * @return {[type]}                [description]
 */
export function getListEnumsJson(arrStr, Callback) {
  // var result = {};
  // arrStr.forEach(function(item, index) {
  //   result[item] = [];
  // });
  // const types = arrStr.join(',');
  // let result = {};
  // listEnumsByType().then(res => {
  //   // res.data.forEach(function(item, index) {
  //   //   const options = result[arrStr[index]];
  //   //   for (var i = 0; i < item.items.length; i++) {
  //   //     options.push({ code: item.items[i].value, name: item.items[i].name });
  //   //   }
  //   // });
  //   let datas = res.data;
  //   for (const key in datas) {
  //     for (var i = 0; i < datas[key].length; i++) {
  //       datas[key][i].name = datas[key][i].label
  //     }
  //   }
  //   result = datas;
  //   return result;
  //   // if (Callback) {
  //   //   Callback();
  //   // }
  // });

  return new Promise((resolve, reject) => {
    listEnumsByType().then(res => {
      let datas = res.data;
      for (const key in datas) {
        for (var i = 0; i < datas[key].length; i++) {
          datas[key][i].name = datas[key][i].label
        }
      }
      resolve(datas);
    }).catch(err => {
      reject(err);
    })
  })

}
/**
 * [getIsEnableOption 前端定义isEnable字典]
 * @return {[type]} [description]
 */
export function getIsEnableOption() {
  return [{
      name: '启用',
      code: 1,
      color: 'green'
    },
    {
      name: '停用',
      code: 0,
      color: 'red'
    }
  ];
}
/**
 * [getIsEnableOption 前端定义YesNo枚举字典]
 * @return {[type]} [description]
 */
export function getYesNo() {
  return [{
      name: '是',
      code: 1,
      color: 'green'
    },
    {
      name: '否',
      code: 0,
      color: 'red'
    }
  ];
}
export function getGender() {
  return [{
      name: '男',
      code: '男',
      color: 'green'
    },
    {
      name: '女',
      code: '女',
      color: 'red'
    }
  ];
}
export function getFeeType() {
  return [{
      name: '按次',
      code: '按次'
    },
    {
      name: '按时',
      code: '按时'
    },
    {
      name: '按量',
      code: '按量'
    }
  ];
}
export function binParams() {
  return [{
      key: '06040101',
      label: '总功率限制值',
      value: '',
    },
    {
      key: '06040201',
      label: '系统散热部件启动阈值'
    },
    {
      key: '06040301',
      label: '语音播报使能'
    },
    {
      key: '06040401',
      label: '语音播报时间段'
    },
    {
      key: '06040501',
      label: '主控版本号'
    },
    {
      key: '06040601',
      label: '仓控版本号'
    },
    {
      key: '06040701',
      label: '柜控版本号'
    },
    {
      key: '06040801',
      label: '日志FTP地址URL'
    },
    {
      key: '06040901',
      label: '日志FTP用户名'
    },
    {
      key: '06041001',
      label: '日志FTP密码'
    },
    {
      key: '06041101',
      label: '日志FTP存放路径'
    },
    {
      key: '06041201',
      label: '升级软件版本号'
    },
    {
      key: '06041301',
      label: '升级FTP地址URL'
    },
    {
      key: '06041401',
      label: '升级FTP用户名'
    },
    {
      key: '06041501',
      label: '升级FTP密码'
    },
    {
      key: '06041601',
      label: '升级软件包名称'
    },
    {
      key: '06041701',
      label: '校时'
    },
    {
      key: '06041801',
      label: '属性增量上报间隔'
    },
    {
      key: '06041901',
      label: '属性全量上报间隔'
    },
    {
      key: '06042001',
      label: '发起充电超时时长'
    },
    {
      key: '06042101',
      label: '柜订单状态'
    },
    {
      key: '06042201',
      label: '插座断开时间'
    },
    {
      key: '06042301',
      label: '过功率阈值'
    },
    {
      key: '06042401',
      label: '涓流状态判断(按功率)'
    },
    {
      key: '06042501',
      label: '最长输出时间'
    },
    {
      key: '06042601',
      label: '涓流充电最长时间'
    },
    {
      key: '06042701',
      label: '输出欠压阈值'
    },
    {
      key: '06042801',
      label: '输出过压阈值'
    },
    {
      key: '06042901',
      label: '高温阈值'
    },
    {
      key: '06043001',
      label: '低温阈值'
    },
    {
      key: '06043101',
      label: '输出过流阈值'
    },
    {
      key: '06043201',
      label: '充电时长'
    },
    {
      key: '06043301',
      label: '计费模式'
    },
    {
      key: '06043401',
      label: '锁闭合初始值'
    },
  ]
}
/**
 * [aFaultString 故障字典字符串]
 * @param  {[type]} type [是否是多选下拉字典]
 * @return {[type]}      [description]
 */
export function aFaultString(type) {
  return [
    '端口状态',
    '输出过压(可恢复)',
    '输出欠压(可恢复)',
    '输出过流',
    '输出短路',
    '充电超时(充电时间大于最长充电时间)',
    '充电中拔掉插头',
    '继电器状态异常(吸合不上或者断不开)',
    '未检测到设备(单位时间内检测到设备)',
    '是否正常结束',
    '心跳超时',
    '分路漏电流',
    '分路过温',
    '输出过载(分路)',
    '暂停充电',
    '仓门异常',
    '风扇故障',
    '加热部件故障',
    '系统过流',
    '系统过载',
    '消防联动',
    '系统湿度过大',
    '输入端电表通讯异常',
    '系统温湿度传感器异常',
    '系统散热部件异常',
    '环境湿度异常',
    '',
    '',
    '',
    '',
    '',
    '升级失败'
  ];
}
/**
 * [getFaultName 故障code置换故障名称]
 * @param  {[type]} faultCode [description]
 * @return {[type]}           [description]
 */
export function getFaultName(faultCode) {
  if (!faultCode) {
    return '';
  }
  const arr = aFaultString();
  const faultArrey = faultCode.split('');
  for (let i = 0; i < faultArrey.length; i++) {
    if (faultArrey[i] === '1') {
      faultArrey.splice(i + 1, 0, '.');
      faultArrey.splice(i + 2, 0, ',');
    }
  }
  const faultString = faultArrey.join('');
  const faultBox = faultString.split(',');
  for (let i = 0; i < faultBox.length; i++) {
    if (!faultBox[i].startsWith('.', faultBox[i].length - 1)) {
      delete faultBox[i];
    }
  }
  for (var i = faultBox.length - 1; i >= 0; i--) {
    if (faultBox[i] === undefined) {
      faultBox.splice(i, 1);
    }
  }
  for (let i = 0; i < faultBox.length; i++) {
    faultBox[i] = faultBox[i].length - 1;
  }
  for (let i = 0; i < faultBox.length; i++) {
    faultBox[i] = arr[faultBox[i]];
  }
  return faultBox.join(',');
}

// /**
//  * [parameterUnit 充电柜参数系数]
//  * @return {[type]}      [description]
//  */
// export function parameterUnit() {
//   return [
//     {
//       name: 'A接口的比例',
//       a: '0.01kW·h',
//       b: '0.1V',
//       c: '0.1A',
//       d: '0.1℃'
//     },
//     {
//       name: 'B接口的比例',
//       a: '0.01kW·h',
//       b: '0.1V',
//       c: '0.01A',
//       d: '0.1℃'
//     },
//     {
//       name: 'C接口的比例',
//       a: '0.01kW·h',
//       b: '0.1V',
//       c: '1A',
//       d: '0.1℃'
//     },
//   ];
// }

export const semaphoreCode = '06011601'; //充电功率编码

